package com.example.springLearning.part2.service;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;

@Service
public class ServiceImpl {

    private String serviceName;

    /**
     * service bean初始化时，选择构造函数，由于只存在一个显式构造函数，
     * 会调用这个构造函数，存在参数的情况下，会调用createArgumentArray方法来构建调用构造器的参数数组，这个方法的最终实现
     * 是从beanFactory中获取bean。
     * 见同一包下的beanDef.java的serviceName方法，注册了一个String返回值的bean。
     * 在这个service bean初始化构造方法时，取该bean作为入参。
     * @param serviceName
     */
    public ServiceImpl(String serviceName) {
        System.out.println(serviceName);
        this.serviceName = serviceName;
    }

}
